package com.cta.dao;

import java.util.Collection;
import java.util.List;

import com.cta.entity.TariffAreaCode;
import com.cta.entity.TariffGroup;
import com.cta.entity.TariffRecord;
import com.cta.utils.SupportLoaderDelegate;

public interface TariffRecordPersistence extends BasePersistence {

	public TariffRecord getTariffRecord(Long tariffId);

	public TariffRecord getTariffRecord(Long tariffId, SupportLoaderDelegate<TariffRecord> loader);
	
	public TariffRecord getTariffRecordWidthDiscount(Long tariffId);

	public TariffGroup getTariffGroup(Long tariffGroupId, SupportLoaderDelegate<TariffGroup> loader);

	public TariffAreaCode getTariffAreaCode(Long tariffAreaCodeId, SupportLoaderDelegate<TariffAreaCode> loader);

	public List<TariffRecord> listTariffRecord();
	
	public List<TariffRecord> listAllTariffRecordWidthDiscount() ;

	public List<TariffGroup> listAllTariffGroup(Long tariffId);
	
	public List<TariffGroup> listAllTariffGroupWithDiscount(Long tariffId);

	public List<TariffAreaCode> listAllTariffGroup(List<Long> ids);
	
	public List<TariffAreaCode> listAllTariffAreaCodeWithRate(Collection<Long> ids) ;

	public List<TariffAreaCode> listTariffAreaCodeTemplate(Long groupId);
}
